using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
using 凌依.工具库.U2D地图;
using 凌依.工具库.随机工具;

public class 瓦片管理器 : 单例_基础可挂载管理器<瓦片管理器>
{
    public Tilemap 底层;
    public Tilemap 中层;
    public Tilemap 上层;

    /// <summary>
    /// 
    /// </summary>
    /// <param name="pos"></param>
    /// <param name="物品">如果为空将全部清空</param>
    public void 设置瓦片(Vector2Int pos,地图物品 物品,图层 图层)
    {
        void setTile(Tilemap tilemap)
        {
            Vector3Int vector3 = pos.ToVector3Int();
            tilemap.SetTile(vector3, 物品.瓦片);
            tilemap.SetColor(vector3, 物品.叠加补色);
        }
        

        if (物品 == null)
        {
            Vector3Int vector3Int = pos.ToVector3Int();
            if (图层 == 图层.全部)
            {
                底层.SetTile(vector3Int, null);
                中层.SetTile(vector3Int, null);
                上层.SetTile(vector3Int, null);
                return;
            }
            switch (图层)
            {
                case 图层.底层:
                    底层.SetTile(vector3Int, null);
                    break;
                case 图层.中层:
                    中层.SetTile(vector3Int, null);
                    break;
                case 图层.上层:
                    上层.SetTile(vector3Int, null);

                    break;
                case 图层.顶层:
                    break;
                default:
                    break;
            }
            return;
        }
        
        
        switch (物品.图层)
        {
            case 图层.底层:
                setTile(底层);
                break;
            case 图层.中层:
                setTile(中层);
                break;
            case 图层.上层:
                setTile(上层);
                break;
            case 图层.顶层:
                break;
            default:
                break;
        }
    }

    public void 移除瓦片(Vector2Int pos)
    {
        Vector3Int pos3 = pos.ToVector3Int();
        底层.SetTile(pos3, null);
        中层.SetTile(pos3, null);
        上层.SetTile(pos3, null);
    }
}
